package com.yike.product.service;

import com.yike.product.entity.GoodsCategory;
import com.yike.product.param.GoodsCategoryPageParam;
import com.yike.common.base.BaseService;
import com.yike.common.pagination.Paging;
import com.yike.product.param.GoodsCategoryParam;
import com.yike.product.vo.GoodsCategoryTreeVo;
import com.yike.product.vo.GoodsCategoryVo;

import java.util.List;

/**
 * 商品分类 服务类
 *
 * @author Sakura
 * @since 2024-10-18
 */
public interface GoodsCategoryService extends BaseService<GoodsCategory> {

    /**
     * 保存
     *
     * @param goodsCategoryParam
     * @return
     * @throws Exception
     */
    boolean saveGoodsCategory(GoodsCategoryParam goodsCategoryParam) throws Exception;

    /**
     * 修改
     *
     * @param goodsCategoryParam
     * @return
     * @throws Exception
     */
    boolean updateGoodsCategory(GoodsCategoryParam goodsCategoryParam) throws Exception;

    /**
     * 删除
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteGoodsCategory(Long id) throws Exception;

    GoodsCategoryVo getGoodsCategory(Long id) throws Exception;


    /**
     * 获取分页对象
     *
     * @param goodsCategoryPageParam
     * @return
     * @throws Exception
     */
    Paging<GoodsCategoryVo> getGoodsCategoryPageList(GoodsCategoryPageParam goodsCategoryPageParam) throws Exception;

    List<GoodsCategoryTreeVo> tree() throws Exception;

}
